/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Time;

import Pessoa.Jogador;
import Pessoa.Treinador;
import java.awt.Image;
import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author Administrador
 */
public class Time {

    private String nome;
    private ArrayList<Jogador> elenco;
    private ArrayList<Jogador> titu;
    private Jogador def[];
    private Jogador atq[];
    private Jogador meio[];
    private Jogador goleiro;
    private Image fototime;
    private int pontos;
    private int dinheiro;
    public Time(String nome) {
        elenco = new ArrayList<>();
        titu = new ArrayList<>();


        this.nome = nome;
    }

    public void vender(Jogador jogador) {
        addDinheiro(jogador.getPreco());
        elenco.remove(jogador);

    }

    public int addDinheiro(int a) {
        setDinheiro(getDinheiro() + a);
        return getDinheiro();
    }

    public boolean comprar(Jogador jogador, Time time) {
        if (getDinheiro() < jogador.getPreco()) {


            return false;

        } else {
            time.vender(jogador);
            elenco.add(jogador);
            addDinheiro(-jogador.getPreco());
            return true;
        }
    }
    
    public void escalacaoInicial(){
        int vetdef = 0;
        int vetmeia = 0;
        int vetatq = 0;
        int vetgol=0;
        for (int i = 0; i < elenco.size(); i++) {
            if (elenco.get(i).getPosicao().equalsIgnoreCase("Goleiro")&&vetgol<1) {
                escalaTime(4, 4, 2, i);
                vetgol++;
            }
            if (elenco.get(i).getPosicao().equalsIgnoreCase("Zagueiro") && vetdef < def.length) {
                escalaJogador(def, i, vetdef);
                vetdef++;
            }
            if (elenco.get(i).getPosicao().equalsIgnoreCase("Meia") && vetmeia < meio.length) {
                escalaJogador(meio, i, vetmeia);
                vetmeia++;
            }
            if (elenco.get(i).getPosicao().equalsIgnoreCase("Atacante") && vetatq < atq.length) {
                escalaJogador(atq, i, vetatq);
                vetatq++;
            }
        }
    }
        public int media(Jogador[] a, int sl){
        int m = 0;
        if (sl == 0) {
            for (int i = 0; i < a.length; i++) {
            m =+ a[i].getDefesa();
            }
            m= m/def.length;
            m =+(titu.get(0).getDefesa())/2;
            
        }else if (sl == 1) {
            for (int i = 0; i < a.length; i++) {
            m =+ a[i].getTecnica();
            
            }
            m= m/meio.length;
            
        }else if (sl == 2) {
            for (int i = 0; i < a.length; i++) {
            m =+ a[i].getAtaque();
            
            }
            m= m/atq.length;
            
    }
        return m;
    }
        
        
    public void escalaTime(int def,int meio, int atq,int escolha){
        this.def = new Jogador[def];
        this.meio = new Jogador[meio];
        this.atq = new Jogador[atq];
        goleiro=elenco.get(escolha);
        titu.clear();
        titu.add(goleiro);
    }
    
    public void escalaJogador(Jogador[] setor,int jogador, int i){
        setor[i]=(this.getElenco().get(jogador));
        titu.add(setor[i]);
    }
    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the elenco
     */
    public ArrayList<Jogador> getElenco() {
        return elenco;
    }

    /**
     * @param elenco the elenco to set
     */
    public void setElenco(ArrayList<Jogador> elenco) {
        this.elenco = elenco;
    }

    /**
     * @return the def
     */
    public Jogador[] getDef() {
        return this.def;
    }

    /**
     * @param def the def to set
     */
    public void setDef(Jogador[] def) {
        this.def = def;
    }

    /**
     * @return the atq
     */
    public Jogador[] getAtq() {
        return this.atq;
    }

    /**
     * @param atq the atq to set
     */
    public void setAtq(Jogador[] atq) {
        this.atq = atq;
    }

    /**
     * @return the meio
     */
    public Jogador[] getMeio() {
        return this.meio;
    }

    /**
     * @param meio the meio to set
     */
    public void setMeio(Jogador[] meio) {
        this.meio = meio;
    }

    /**
     * @return the goleiro
     */
    public Jogador getGoleiro() {
        return goleiro;
    }

    /**
     * @param goleiro the goleiro to set
     */
    public void setGoleiro(Jogador goleiro) {
        this.goleiro = goleiro;
    }

    /**
     * @return the pontos
     */
    public int getPontos() {
        return pontos;
    }

    /**
     * @param pontos the pontos to set
     */
    public void setPontos(int pontos) {
        this.pontos = getPontos()+pontos;
    }

    /**
     * @return the dinheiro
     */
    public int getDinheiro() {
        return dinheiro;
    }

    /**
     * @param dinheiro the dinheiro to set
     */
    public void setDinheiro(int dinheiro) {
        this.dinheiro = dinheiro;
    }

    /**
     * @return the treinador
     */
    public Image getFoto() {
        return fototime;
    }

    /**
     * @param foto the foto to set
     */
    public void setFoto(Image foto) {
        this.fototime = foto;
    }

    /**
     * @return the titu
     */
    public ArrayList<Jogador> getTitu() {
        return titu;
    }

    /**
     * @param titu the titu to set
     */
    public void setTitu(ArrayList<Jogador> titu) {
        this.titu = titu;
    }

    /**
     * @return the escolha
     */
   
}
